The present invention relates to an information processing system that can be mounted on a docking station, and to a control method therefor; and in particular to an information processing system that can precisely perform DMA transfer operations even if DMA controller chips are used in both the information processing system and the docking station, and to a control method therefor.
More specifically, the present invention pertains to an information processing system that can precisely perform DMA transfers even if DMA controller chips exist both in a local system and a docking station, and to a control method therefor; and particularly to an information processing system that can preferably perform DMA transfer operations even if the same I/O port address is assigned for coexisting DMA controllers, and to a control method therefor.
As a consequence of recent technical developments, various types of personal computers (PCs), such as desktop types and notebook types, have been produced and are available on the market.
In a computer system, a Central Processing Unit or CPU for controlling the operation of an entire system communicates with memory and other peripheral devices across a common signal transfer path called a "bus". The "bus" consists of multiple signal lines, such as a data signal line, an address signal line and a control signal line.
The ISA (Industry Standard Architecture) bus is widely known as a standard bus architecture. The ISA bus was adopted for the IBM PC/AT (PC/AT is a trademark of IBM Corp.), i.e., was designed for a CPU chip 80286 (with a local bus width of 16 bits) that is produced by Intel Corp. The primary performance features of the ISA bus are a 16-bit bus width, an operating clock of 8 MHz, and a maximum transfer speed of 4 mbps. The ISA bus, a de facto standard of a bus architecture, is the most popular, and many compatible (i.e., mountable and normally operating) expansion boards, peripheral devices and software programs (OS, BIOS, applications, etc.) are provided for it. In other words, the ISA bus is a legacy bus that has inherited much from the past.
Since at the beginning almost all CPU chips were operated at relatively low clock speeds, such as 8 MHz or 12 MHz, the ISA bus could be operated at the same clock speeds as those of the CPUs. However, as the performance available with CPU chips has been increased (e.g., 486 or Pentium, produced by Intel Corp., or PowerPC 6xx developed by IBM Corp. (PowerPC is a trademark of IBM Corp.)), the ISA bus has steadily hindered the utilization of improvements to the CPUs. Further, there has been an increase in the devices (adaptor cards) that require high speed data transfer, such as graphic video sub-systems, full motion video sub-systems, SCSI (Small Computer System Interface) storage sub-systems, and network sub-systems, and these devices do not function satisfactorily with the ISA bus.
The PCI (Peripheral Component Interconnect) architecture bus can compensate for the slow data transfer speed of the ISA bus. The PCI bus is a bus that was originally proposed by Intel Corp., which published the specifications in 1991, with which high speed operation is possible. Its primary performance features are a 32-bit bus width, an operating frequency of 33 MHz, and a maximum transfer speed of 132 mbps. Another feature of the PCI bus is that it is so designed that it can be connected to all other buses by using bridge circuits. For example, a PCI bus can be mutually connected to a CPU by a "host-PCI bridge circuit", to an ISA bus by a "PCI-ISA bridge circuit", and to another PCI bus by a "PCI-PCI bridge circuit". Since the individual buses connected by bridge circuits are driven independently, i.e., asynchronously, no problem concerning electrical characteristics and operating stability arises.
While some current high performance PCs employ an ISA bus for which hardware and software assets are abundant, other PCs have adopted PCI buses as high speed buses that are used for graphic processing. In FIG. 8 is schematically shown the hardware arrangement of a high performance PC. As is shown in FIG. 8, the system has a two layered structure, such as a PCI bus (local bus) 16 and an ISA bus (system bus) 22. A processor bus 12, that is directly connected to an external pin of a CPU 11, communicates with the PCI bus 16 via a bridge circuit (host-PCI) 14. To the PCI bus 16 are connected to devices, such as a video controller 17A, for which relatively-high speed operations are required. The ISA bus 22 communicates with the PCI bus 16 via a bridge circuit (PCI-ISA) 20, and is also connected to relatively low speed operating devices, such as a floppy disk controller (FDC), a serial port, a parallel port, a keyboard 26, and a mouse 27.
To this point, an explanation has been given for a common personal computer without defining it as a desktop or a notebook type. However, a notebook computer, for which compact size, light weight, and portability are important, must be clearly distinguished from a desktop computer. For example, as a notebook computer is small and has less available storage space, and the surface area of the notebook computer is small, the number of bus slots that can be installed is very limited (while it is not rare for a desktop computer to have ten or more bus slots, for a laptop/notebook computer, no bus slots, or one or two at most, are provided.). Although portability is the biggest feature of a notebook computer, if cables (e.g., a printer cable, a monitor cable, and a communication cable) must be attached to and detached from the ports on the computer body each time the computer is to be used on a desk or to be removed from the desk, the handling will be complicated and the portability will also be deteriorated.
A so-called docking station (also called an "expansion box" or an "expansion unit") provides for a notebook computer the same working environment as that of a desktop computer, without any deterioration of the portability of the notebook computer, when the notebook computer is to be used in the office. The primary functions of the docking station are "port replication" and "bus expansion". The port replication can be realized by the expanding the connection ports of the notebook computer. That is, when a cable is connected in advance to each port of the docking station, a user can immediately use a printer, a monitor and a network simply by mounting the notebook computer on the docking station. The bus expansion can be realized by expanding the bus in the notebook computer and the provision of a bus slot. Therefore, a user can insert desired adapter cards into a docking station without any restriction. It should be noted that a docking station is disclosed in, for example, Japanese Patent Application No. Hei 06-134124 (Our ref. No. JA9-94-030), which was assigned to the present applicant.
Most of the conventional docking stations are those for expanding an ISA bus in a system. This follows from the fact that the ISA bus has a significant legacy. However, there is a recently increased demand for the expansion of local buses, i.e., PCI buses. This is because the number of adapter cards that can be inserted into a single PCI bus is limited to ten at most in order to maintain the electric characteristic and the stability of the PCI bus (it should be noted that a device connected by a connector is regarded as two devices).
FIG. 9 is a schematic diagram illustrating the hardware arrangements for a docking station providing a bus expansion function for a PCI bus, and a notebook computer that is coupled to the docking station. As is shown in FIG. 9, the docking station has not only a PCI bus (a secondary PCI bus) 50 but also an ISA bus (a secondary ISA bus) 53 for the purpose of inheriting the legacy available for the ISA bus. The secondary PCI bus 50 and ISA bus 53 communicate with each other via a bridge circuit (PCI-ISA) 51. A PCI bus (a primary PCI bus) 16 in the notebook computer and the secondary PCI bus 50 communicate with each other via a bus connection controller 60. The bus connection controller 60, which serves as a PCI-PCI bridge circuit, receives a bus signal from the primary PCI bus 16 and drives the secondary PCI bus 50 in accordance with that received bus signal. The docking station includes internally at least one PCI slot and one ISA slot, and has more than one connection ports on its surface.
Almost all the personal computers that are currently available on the market utilize a technique called DMA (Direct Memory Access). DMA is an operation by which a data transfer between a peripheral controller, such as a floppy disk controller, and main memory is performed without the involvement of a CPU. The process of reading data from the disk and storing the data in memory is a frequently repeated task (for example, when loading an application). Since the CPU is not involved in the DMA data transfer operations, it can be engaged in performing another job while the transfer is taking place. In other words, DMA transfer is a technique whereby the possibility is avoided that a CPU will be monopolized by a specific peripheral device for a long time, and thus the system throughput is improved.
Most of the ISA devices, such as floppy disk drives, printers and audio controllers, that are operated at a relatively low speed perform DMA data transfer and permit the CPU to perform another job. A special LSI for controlling DMA transfers, i.e, a DMA controller, is employed. The DMA controller for controlling DMA transfers across an ISA bus can be regarded as one of the legacies of the ISA bus. Since the DMA controller must be driven in synchronization with an ISA device that requests DMA transfer, it must be located in the vicinity of the ISA bus. In the system shown in FIG. 8, for example, a DMA controller (hereinafter referred to as a "first DMA controller") is located in the PCI-ISA bridge circuit 20 so as to preferably respond to a DMA request on the ISA bus 22.
In the system shown in FIG. 9, the ISA buses are located both in the notebook computer and in the docking station. As the DMA controller has to be synchronized with the operation of the bus, a DMA controller (hereinafter referred to as a "second DMA controller") must be located in the bridge circuit 51 of the docking station.
As well known, a CPU controls its peripheral devices by accessing (including both read access and write access) the control registers of the peripheral devices. As a method for accessing the control registers, there are a "memory mapped I/O method" for allocating the control registers to one part of a physical address space, and an "I/O address method" for allocating the control registers to an input/output address space (I/O space) that is prepared separately from a physical address space. An explanation will be given specifically for the I/O address method. The I/O address method is a control method that can be employed only by a system in which is mounted a CPU chip (e.g., an x86 chip from Intel Corp.) that has a function for handing an I/O address space. The CPU controls its peripheral devices by accessing (i.e., performing I/O accessing) an I/O address assigned for a control register of each peripheral device.
The previously mentioned DMA controller is one of the peripheral devices for the CPU. In an IBM PC/AT compatible machine (hereinafter referred to simply as an "AT compatible machine"), for example, I/O port addresses, address 000h to address 01Fh, address 0C0h to address 0DFh, and address 080h to address 09Fh, are assigned for the control register of the DMA controller. To begin a DMA transfer, the CPU (more specifically, a BIOS or a device driver that physically operates peripheral devices) must set control values in advance, such as a transfer start address and the amount of data transfer words, in the control register. In other words, the CPU has to perform an I/O access of the control register of the DMA controller.
According to the standard specifications for the IBM PC/AT, however, only one DMA controller can be present in an I/O address space. This means that even when two or more DMA controllers exist, the same I/O port address is assigned to the control registers of the second DMA controller. That is, even if two independent DMA controllers exist physically, they can not be distinguished and separately identified in the I/O address space, i.e., by viewing from the CPU side (see FIG. 10).
Although the DMA transfer may be intended to be performed for an FDC connected to the secondary ISA bus 53, the BIOS (or the device driver) may mistakenly access the control register of the DMA controller on the primary ISA bus 22 side, reading or writing meaningless control data so that it performs meaningless control. The unwanted control based on the meaningless control data may threaten the security of the system.
The DMA controller that is present along the primary PCI bus 16 can respond to the I/O access at an earlier time than can the DMA controller along the secondary PCI bus 50, which communicates with the primary PCI bus 16 via the bus connection controller 60, because a delay accrues to a bus cycle on the secondary PCI bus side due to its passing through the bus connection controller 60. As a result, even when the second DMA controller on the secondary PCI bus 50 must respond to an I/O access request, for example, when a DMA request occurs on the secondary ISA bus 53, the first DMA controller on the primary PCI bus 16 responds to the request earlier than the second DMA controller. In other words, I/O access of a different target is performed. Such an I/O access of a different target may threaten the security of the system.